package com.zuipin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.SysResource;
import com.zuipin.util.Pagination;

/**
 *  资源(按纽/功能)mapper
  * @ClassName: SysResourceMapper
  * @Description: TODO
  * @author robot
  * @date 2017年09月147日 09:21:08
  *
 */
@Mapper
public interface SysResourceMapper {
	/**
	  * 查询资源(按纽/功能)
	  * @Title: findById
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param id,
	  * @return
	  * @return SysResource
	 */
	public SysResource findById(Long id);
	
	/**
	  * Code查询资源(按纽/功能)
	  * 
	 */
	public SysResource findByCode(@Param("resourceCode") String resourceCode, @Param("sysId") Long sysId);
	
	/**
	  * 插入资源(按纽/功能)操作
	  * @Title: insert
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param sysResource
	  * @return void
	 */
	public void insert(SysResource sysResource);
	
	/**
	  *  更新资源(按纽/功能)操作
	  * @Title: update
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param sysResource
	  * @return void
	 */
	public void update(SysResource sysResource);
	
	public void updateBack(SysResource sysResource);
	
	/**
	  * 删除资源(按纽/功能)
	  * @Title: delete
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param id,
	  * @return void
	 */
	public void delete(Long id);
	
	/**
	 * 搜索资源(按纽/功能), 并自动分页
	  *  @Title: seachSysResource
	  * @author robot
	  * @date 2017年09月147日 09:21:08
	  * @param sysResource
	  * @param page
	  * @return
	  * @return List<SysResource>
	 */
	public List<SysResource> seachSysResource(@Param("sysResource") SysResource sysResource, @Param("page") Pagination page);
	
	/**
	 * 通过角色ID 菜单ID 查看下面对应的资源权限
	 * @param roleId
	 * @param menuId
	 * @author zhuangjiajian
	 * @param sysId 
	 * @date 2017-9-15 10:11:55
	 * @return
	 */
	public List<SysResource> findByRoleIdAndMenuId(@Param("roleId") Long roleId, @Param("menuId") Long menuId, @Param("sysId") Long sysId);
	
	/**
	 * 按角色删除菜单权限
	 * @param roleId
	 */
	public void deleteResourcePermissionByRole(@Param("roleId") Long roleId);
	
}